<script setup>
import { artGetChannelsService } from '@/api/article'
import { ref } from 'vue'

// 从父组件接收的数据
defineProps({
  modelValue: {
    type: [Number, String]
  },
  width: {
    type: String
  }
})

// 向父组件发送数据
const emit = defineEmits(['update:modelValue'])

// 定义接收的数据
const channelList = ref([])

// 获取频道列表
const getChannelList = async () => {
  const res = await artGetChannelsService()
  channelList.value = res.data.data
}
// 组件挂载完成后, 立即获取频道列表
getChannelList()
</script>

<template>
  <!-- :modelValue: 绑定父组件传递的信息 -->
  <!-- @update:modelValue: 若干组件内数据出现更新, 马上通知父组件 -->
  <el-select
    :modelValue="modelValue"
    @update:modelValue="($event) => emit('update:modelValue', $event)"
    :sytyle="{ width }"
  >
    <!-- 使用v-for遍历频道列表, 并渲染分类名字 -->
    <el-option
      v-for="channel in channelList"
      :key="channel.id"
      :label="channel.cate_name"
      :value="channel.id"
    ></el-option>
  </el-select>
</template>
